home *** CD-ROM | disk | FTP | other *** search
/ Ray Dream Studio 5 / Ray Dream.iso / pc / DreamSDK / Windows / INCLUDES / I3DEXAB.H < prev    next >
Encoding:
C/C++ Source or Header  |  1997-07-11  |  6.9 KB  |  155 lines

  1. /* $Id: I3DEXAB.H 1.3 1996/05/01 23:00:17 john Exp $ */
  2. /*****************************************************************************\
  3. *                                                                             *
  4. * I3DExAB.h -                                                                                  *
  5. *   I3DExAtmosphericShader definition                                         *
  6. *   I3DExBackgroundShader definition                                          *
  7. *                                                                             *
  8. *           Copyright (c) 1995, Ray Dream, Inc. All rights reserved.          *
  9. *                                                                             *
  10. \*****************************************************************************/
  11.  
  12. #ifndef __I3DEXAB__
  13. #define __I3DEXAB__
  14.  
  15. #ifndef __I3DEX__
  16. #include "I3DEx.h"
  17. #endif
  18.  
  19.  
  20. //****** Globally Unique Ids *************************************************
  21.  
  22. DEFINE_GUID(IID_I3DExAtmosphericShader, 0x99FF7660L, 0x3A02, 0x101C, 0x88, 0x5F, 0x04, 0x02, 0x1C, 0x00, 0x70, 0x02);
  23. DEFINE_GUID(IID_I3DExBackground, 0x9D2399C0L, 0x3A02, 0x101C, 0x88, 0x5F, 0x04, 0x02, 0x1C, 0x00, 0x70, 0x02);
  24. DEFINE_GUID(IID_I3DExBackdrop, 0x9D2399C1L, 0x3A02, 0x101C, 0x88, 0x5F, 0x04, 0x02, 0x1C, 0x00, 0x70, 0x02);
  25. DEFINE_GUID(IID_I3DExAmbientLight, 0x9D2399C2L, 0x3A02, 0x101C, 0x88, 0x5F, 0x04, 0x02, 0x1C, 0x00, 0x70, 0x02);
  26.  
  27. /*****************************************************************************\
  28. *  I3DExAtmosphericShader                                                     *
  29. *                                                                             *
  30. *  Atmospheric Shader                                                         *
  31. *                                                                             *
  32. \*****************************************************************************/
  33.  
  34. #undef  INTERFACE
  35. #define INTERFACE   I3DExAtmosphericShader
  36.  
  37. DECLARE_INTERFACE_(I3DExAtmosphericShader, I3DExDataExchanger) {
  38.     // IUnknown methods
  39.   STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  40.   STDMETHOD_(ULONG, AddRef) (THIS) PURE;
  41.   STDMETHOD_(ULONG, Release) (THIS) PURE;
  42.   
  43.     // I3DExtension methods
  44.     STDMETHOD_(I3DExtension*, Clone) (THIS) PURE;
  45.     STDMETHOD(ShellUtilitiesInit) (THIS_ IShUtilities* shellUtilities) PURE;
  46.  
  47.   // I3DExDataExchanger methods
  48.     STDMETHOD_(ExtensionDataMap*, GetExtensionDataMap) (THIS) PURE;
  49.     STDMETHOD_(void*, GetExtensionDataBuffer) (THIS) PURE;
  50.   STDMETHOD(ExtensionDataChanged) (THIS) PURE;
  51.   STDMETHOD(HandleEvent) (THIS_ ULONG sourceID) PURE;
  52.     STDMETHOD_(short, GetResID) (THIS) PURE;
  53.   
  54.   // I3DExAtmosphericShader methods
  55.     STDMETHOD(SegmentFilter) (THIS_ VECTOR3D* beg, VECTOR3D* end, COLOR3D* filterOut) PURE;
  56.     STDMETHOD(DirectionFilter) (THIS_ VECTOR3D* origin, VECTOR3D* direction, COLOR3D* filterOut) PURE;
  57.     };
  58.  
  59. /*****************************************************************************\
  60. *  I3DExBackground                                                            *
  61. *                                                                             *
  62. *  Background                                                                 *
  63. *                                                                             *
  64. \*****************************************************************************/
  65.  
  66. #undef  INTERFACE
  67. #define INTERFACE   I3DExBackground
  68.  
  69. DECLARE_INTERFACE_(I3DExBackground, I3DExDataExchanger) {
  70.     // IUnknown methods
  71.   STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  72.   STDMETHOD_(ULONG, AddRef) (THIS) PURE;
  73.   STDMETHOD_(ULONG, Release) (THIS) PURE;
  74.   
  75.     // I3DExtension methods
  76.     STDMETHOD_(I3DExtension*, Clone) (THIS) PURE;
  77.     STDMETHOD(ShellUtilitiesInit) (THIS_ IShUtilities* shellUtilities) PURE;
  78.  
  79.   // I3DExDataExchanger methods
  80.     STDMETHOD_(ExtensionDataMap*, GetExtensionDataMap) (THIS) PURE;
  81.     STDMETHOD_(void*, GetExtensionDataBuffer) (THIS) PURE;
  82.   STDMETHOD(ExtensionDataChanged) (THIS) PURE;
  83.   STDMETHOD(HandleEvent) (THIS_ ULONG sourceID) PURE;
  84.     STDMETHOD_(short, GetResID) (THIS) PURE;
  85.   
  86.   // I3DExBackground methods
  87.     STDMETHOD(GetBackgroundColor) (THIS_ VECTOR3D* direction, COLOR3D* resultColor) PURE;
  88.     };
  89.  
  90.  
  91. /*****************************************************************************\
  92. *  I3DExBackdrop                                                              *
  93. *                                                                             *
  94. *  Backdrop Shader                                                            *
  95. *                                                                             *
  96. \*****************************************************************************/
  97.  
  98. #undef  INTERFACE
  99. #define INTERFACE   I3DExBackdrop
  100.  
  101. DECLARE_INTERFACE_(I3DExBackdrop, I3DExDataExchanger) {
  102.     // IUnknown methods
  103.   STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  104.   STDMETHOD_(ULONG, AddRef) (THIS) PURE;
  105.   STDMETHOD_(ULONG, Release) (THIS) PURE;
  106.   
  107.     // I3DExtension methods
  108.     STDMETHOD_(I3DExtension*, Clone) (THIS) PURE;
  109.     STDMETHOD(ShellUtilitiesInit) (THIS_ IShUtilities* shellUtilities) PURE;
  110.  
  111.   // I3DExDataExchanger methods
  112.     STDMETHOD_(ExtensionDataMap*, GetExtensionDataMap) (THIS) PURE;
  113.     STDMETHOD_(void*, GetExtensionDataBuffer) (THIS) PURE;
  114.   STDMETHOD(ExtensionDataChanged) (THIS) PURE;
  115.   STDMETHOD(HandleEvent) (THIS_ ULONG sourceID) PURE;
  116.     STDMETHOD_(short, GetResID) (THIS) PURE;
  117.   
  118.   // I3DExBackdrop methods
  119.     STDMETHOD(GetBackdropColor) (THIS_ VECTOR2D* screenPoint, BOX2D* screenMinMax, COLOR3D* resultColor) PURE;
  120.     };
  121.  
  122. /*****************************************************************************\
  123. *  I3DExAmbientLight                                                          *
  124. *                                                                             *
  125. *  Ambient Light                                                              *
  126. *                                                                             *
  127. \*****************************************************************************/
  128.  
  129. #undef  INTERFACE
  130. #define INTERFACE   I3DExAmbientLight
  131.  
  132. DECLARE_INTERFACE_(I3DExAmbientLight, I3DExDataExchanger) {
  133.     // IUnknown methods
  134.   STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  135.   STDMETHOD_(ULONG, AddRef) (THIS) PURE;
  136.   STDMETHOD_(ULONG, Release) (THIS) PURE;
  137.   
  138.     // I3DExtension methods
  139.     STDMETHOD_(I3DExtension*, Clone) (THIS) PURE;
  140.     STDMETHOD(ShellUtilitiesInit) (THIS_ IShUtilities* shellUtilities) PURE;
  141.  
  142.   // I3DExDataExchanger methods
  143.     STDMETHOD_(ExtensionDataMap*, GetExtensionDataMap) (THIS) PURE;
  144.     STDMETHOD_(void*, GetExtensionDataBuffer) (THIS) PURE;
  145.   STDMETHOD(ExtensionDataChanged) (THIS) PURE;
  146.   STDMETHOD(HandleEvent) (THIS_ ULONG sourceID) PURE;
  147.     STDMETHOD_(short, GetResID) (THIS) PURE;
  148.   
  149.   // I3DExAmbientLight methods
  150.     STDMETHOD(GetColor) (THIS_ COLOR3D* resultColor) PURE;
  151.     };
  152.  
  153.  
  154. #endif
  155.